﻿using System;
using System.Text;
using System.Collections.Generic;
using Cinchoo.Core.Configuration;
using System.ComponentModel;
using System.Runtime.Remoting.Contexts;
using System.Dynamic;
using Cinchoo.Core.Text.RegularExpressions;
using System.Text.RegularExpressions;
using Cinchoo.Core.Diagnostics;
using Cinchoo.Core;
using System.Diagnostics;
using Cinchoo.Core.Xml.Serialization;
using Cinchoo.Core.IO;
using System.IO;
using System.Xml.Serialization;
using Xceed.Wpf.Toolkit.PropertyGrid.Attributes;
using System.Windows;
using Cinchoo.Core.WPF;
using System.Windows.Data;
using System.Linq;
using System.Collections.ObjectModel;
using ChoWorkflowServer.Model;
using System.Reflection;
using Cinchoo.Core.Windows;

namespace ChoETLTaskPGSourceObjects
{
    public class SHELL_EXEC_PGSourceObject : ChoPropertyGridSourceObject
    {
        #region Instance Data Members (Mandatory Options)

        [Category("Mandatory Params")]
        [Description("Absolute path of the program.")]
        [DisplayName("Program Name")]
        public string PROGRAM_NAME
        {
            get;
            set;
        }

        #endregion Instance Data Members (Mandatory Options)

        #region Instance Data Members (Optional Options)

        [Category("Optional Params")]
        [Description("Optional command arguments.")]
        [DisplayName("Command Args")]
        public string CMD_ARGS
        {
            get;
            set;
        }

        [Category("Optional Params")]
        [Description("True, to ignore the error reported on the stderr. Otherwise false. (Default: True).")]
        [DisplayName("Silent")]
        [DefaultValue(true)]
        public bool SILENT
        {
            get;
            set;
        }

        [Category("Optional Params")]
        [Description("Wait time for this task to complete (Default: -1).")]
        [DisplayName("Timeout")]
        [DefaultValue(-1)]
        public int TIMEOUT
        {
            get;
            set;
        }

        [Category("Optional Params")]
        [Description("Wait for application to exit (Default: True).")]
        [DisplayName("Wait for Exit")]
        [DefaultValue(true)]
        public bool WAIT_FOR_EXIT
        {
            get;
            set;
        }

        #endregion Instance Data Members (Common Options)
    }
}
